home *** CD-ROM | disk | FTP | other *** search
- LOTUS 1-2-3 (TM) .PIC FILE FORMAT DETAILS
-
- THIS IS A PARTIAL DECODING OF THE SAMPLE PIE-CHART FILE
- FACILITY.PIC WHICH COMES ON THE PRINTGRAPH DISK (OR DID,ANY-
- WAY, ON MINE). THE HEX LISTING IS THE DATA YOU WOULD SEE ON A
- DEBUG DISPLAY OF THE FILE'S CONTENTS; THE REST OF EACH LINE IS
- MY INTERPRETATION OF THE MEANING, VERIFIED IN MOST CASES BY
- PATCHING OTHER DATA INTO THE FILE, MAKING A PLOT, AND SEEING
- WHAT EFFECT THE CHANGES MADE.
-
- HEX MEANING OF DATA
- ------ -----------------------------------------------------
- 0100 HEADER WORD 1, VALUE 0001 (BYTES REVERSED IN FILE)
- 0000 HEADER WORD 2
- 0100 HEADER WORD 3
- 0800 HEADER WORD 4
- 4400 HEADER WORD 5
- 0000 HEADER WORD 6
- SIGNIFICANCE OF THESE 6 HEADER WORDS IS NOT KNOWN, BUT
- CHANGES TO THEM OFTEN RESULT IN DIVIDE OVERFLOW ERRORS
- WHEN PRINTGRAPH ATTEMPTS TO PLOT THE CHANGED FILE.
- 000C X-COORDINATE SCALING FACTOR, DECIMAL 3072
- 7F09 Y-COORDINATE SCALING FACTOR, DECIMAL 2431
- CHANGES TO THESE SCALING FACTORS, WITHIN REASON, WILL
- CHANGE THE SIZE OF THE PLOTTED GRAPH ON THE PAGE
- 06 START OF PLOT DATA. FROM HERE ON, 16-BIT QUANTITIES
- ARE STORED IN THE FILE HIGH BYTE FIRST, THEN LOW -- THE
- EXACT REVERSE OF 8086/8088 STANDARD USED IN THE FIRST
- SIX WORDS.
- A7 SELECT FONT...
- 01 ...NUMBER 2
- B0 SELECT COLOR NUMBER 1 (B1=COLOR 2, ETC.)
- A700 SELECT FONT 1
- AC SET CHARACTER SIZE TO...
- 008C ...X=140 AND...
- 0078 ...Y=120. NOTE HI-LO BYTE REVERSAL.
- A0 MOVE, WITH PEN UP, TO...
- 063F ...X=1599 AND...
- 0906 ...Y=2310. COORDINATE 0,0 IS AT LOWER LEFT OF SCREEN.
- A8 PRINT LABEL...
- 02 ...CENTERED HORIZONTALLY BELOW POINT 1599,2310...
- 42 B (ASCII CHARACTERS FOLLOW, FOR LABEL)
- 55 U
- 44 D
- 47 G
- 45 E
- 54 T
- 00 ...END OF LABEL
- AC SET CHARACTER SIZE TO...
- 0046 ...X=70 AND...
- 003C ...Y=60
- A701 SELECT FONT NUMBER 2
- A0 MOVE, WITH PEN UP, TO...
- 063F ...X=1599...
- 083E ...Y=2110
- A8 PRINT LABEL...
- 04 ...CENTERED HORIZONTALLY ABOVE POINT 1599,2110...
- 46 55 4E 43 54 49 4F 4E 00 "FUNCTION"
- A0 MOVE, WITH PEN UP, TO...
- 0907 ...X=2311...
- 040B ...Y=1035 (START TO DRAW PIE, AT RIGHTMOST EDGE)
- A2 DRAW, WITH PEN DOWN, TO...
- 0906 ...X=2310...
- 03F0 ...Y=1008
- A2 DRAW, WITH PEN DOWN, TO...
- 0904 ...X=2308...
- 03D4 ...Y=980
- ...THIS GOES ON FOR MANY PAGES OF DEBUG LISTING, BUT
- IT ALL FOLLOWS THE ABOVE PATTERN. AT THE END...
- 60 END OF PLOT DATA
- 1A DOS EOF MARKER BYTE
-
- THE BYTE WHICH FOLLOWS THE A8 "LABEL" MARKER INDICATES LABEL
- PLACEMENT WITH RESPECT TO THE MOST RECENTLY ESTABLISHED PEN
- LOCATION, AND ORIENTATION OF THE LABEL ON THE PAGE. THE LOW
- FOUR BITS, TAKEN MOD 9, INDICATE PLACEMENT:
- X0 LABEL CENTERED VERTICALLY AND HORIZONTALLY
- OVER THE POINT
- X1 LABEL CENTERED VERTICALLY, EXTENDING TO THE
- RIGHT OF THE POINT
- X2 LABEL CENTERED HORIZONTALLY BELOW THE POINT
- X3 LABEL CENTERED VERTICALLY, EXTENDING TO THE
- LEFT OF THE POINT
- X4 LABEL CENTERED HORIZONTALLY ABOVE THE POINT
- X5 LOWER RIGHT CORNER OF LABEL ON THE POINT
- X6 LOWER LEFT CORNER OF LABEL ON THE POINT
- X7 UPPER RIGHT CORNER OF LABEL ON THE POINT
- X8 UPPER LEFT CORNER OF LABEL ON THE POINT
- THE NEXT HIGHER TWO BITS INDICATE ROTATION OF THE ENTIRE LABEL,
- INCLUDING PLACEMENT, WITH RESPECT TO THE REST OF THE GRAPH:
- 0X NORMAL PLACEMENT (0-DEGREE ROTATION)
- 1X ROTATED 90 DEGREES CCW
- 2X ROTATED 180 DEGREES (UPSIDE DOWN)
- 3X ROTATED 270 DEGREES CCW (90 DEGREES CW)
- NO "OPCODE" BYTES OTHER THAN THOSE LISTED ABOVE HAVE BEEN FOUND
- IN ANY OF THE .PIC FILES I HAVE EXAMINED; OTHERS MAY BE USED,
- HOWEVER. THIS INFORMATION SHOULD BE ENOUGH TO LET YOU CHANGE
- FONTS OR LABEL PLACEMENT IN .PIC FILES, USING DEBUG TO DO THE
- HEX PATCHING. MY SOFTWARE PUBLISHING ENTERPRISE, "THE SOFTWARE
- FACTORY", IS DEVELOPING A USER-FRIENDLY EDITOR TO PERMIT YOU
- TO EDIT .PIC FILES WITHOUT THE NEED FOR HEX PATCHES; IT WILL
- ALLOW ADDITIONAL TEXT TO BE ADDED TO A GRAPH, OR ANY WORDING
- TO BE CHANGED. LEAVE A MESSAGE TO 73105,1650 HERE OR ON SASIG,
- OR USE EMAIL, IF YOU'RE INTERESTED IN GETTING AN ANNOUNCEMENT
- WHEN IT IS READY. JIM KYLE, 12 MARCH 1984